密碼的儲存也是需要考慮的一個點,密碼絕對不要明文儲存在 database ,而是應先進行加密後再儲存在 database ,這樣就算是整個 database 被拖出來也不會造成損失,而且管理員也不會得知使用者的密碼。
詳細作法是,將使用者的密碼加密後放在 database 中,當使用者需要登入驗證時,便將使用者的密碼進行同樣函式加密並比對。
針對各式加密法進行原文與加密後的對照表,這樣只需要對 hash 後的值搜尋,就能找到相對應的原文。 通常彩虹表要越精準地找到原文,相對地要建立更為龐大的資料庫。
多因素認證包括手機認證、簡訊認證、IP認證等,密碼不再是唯一的認證因素,而且密碼丟失後也能讓使用者更為簡易的拿回權限,證明自己的身分,但相對地在驗證上的步驟較為繁瑣,管理者可以因應網頁需求調整因素內容。